package com.gitee.feizns.dynamic.tree;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;

/**
 * 树形节点实现
 * @author feizns
 * @since 2025/9/21
 */
@Data
@NoArgsConstructor
public class NodeVo<T, ID> implements Node<T, ID> {

    /**
     * 编号
     */
    private ID id;

    /**
     * 父编号
     */
    private ID parentId;

    /**
     * 子节点列表
     */
    private List<T> children = new ArrayList<>();

    /**
     * 节点响应对象
     * @param id 编号
     * @param parentId 父母编号
     */
    public NodeVo(ID id, ID parentId) {
        this.id = id;
        this.parentId = parentId;
    }

    /**
     * 节点响应对象
     * @param id 编号
     * @param parentId 父编号
     * @param children 孩子
     */
    public NodeVo(ID id, ID parentId, List<T> children) {
        this.id = id;
        this.parentId = parentId;
        this.children = children;
    }

}
